#ifndef XPM_DOC_MODEL_RDF_INSTANCE_H
#define XPM_DOC_MODEL_RDF_INSTANCE_H

#include <string>
#include <map>
#include <vector>

using namespace std;

namespace xpm {
	class Slot;
	class Cls;
	typedef map<Slot*, string> SlotValueMap;
	typedef map<Slot*, string>::iterator SlotValueIter;
	typedef map<Slot*, vector<string>> SlotValuesMap;
	typedef map<Slot*, vector<string>>::iterator SlotValuesIter;
	class Instance {
	public:
		Instance(string name, Cls* clas);
		string name();
		void setOwnSlotValues(Slot* slot, vector<string> values);
		void setOwnSlotValue(Slot* slot, string value);
		map<Slot*, string>& slotValue();
		map<Slot*, vector<string>>& slotValues();
		Cls* cls();
	private:
		string _name;
		Cls* _cls;
		map<Slot*, vector<string>> _slotValues;
		map<Slot*, string> _slotValue;
	};
}
#endif